/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.kwikMart.business;

import com.kwikMart.accesData.DetallePedido;
import com.kwikMart.accesData.Producto;
import com.kwikMart.utils.OperationResult;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author WIL
 */
@Stateless
public class ProductoEJB implements ProductoEJBLocal, Serializable {

    @PersistenceContext(unitName = "Kwik-E-Mart-ejbPU")
    private EntityManager em;

    public void persist(Object object) {
        em.persist(object);
    }

    @Override
    public List<Producto> getListaProductos(int idCategoria) {
        List<Producto> resultado = null;

        try {
            resultado = em.createNamedQuery("Producto.findByIdCategoria").setParameter("categoria", idCategoria).getResultList();
        } catch (Exception e) {
        }
        return resultado;
    }

    @Override
    public OperationResult eliminarProducto(int idProducto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public OperationResult registrarProducto(Producto nuevoProducto) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Producto buscarProducto(int idProducto) {
        Producto resultado = null;

        try {
            resultado = (Producto) em.createNamedQuery("Producto.findByIdProducto").setParameter("idProducto", idProducto).getSingleResult();
        } catch (Exception e) {
        }
        return resultado;
    }

    @Override
    public double totalizarPedido(List<DetallePedido> detalle) {
        double sumatotalprod = 0;

        for (DetallePedido i : detalle) {
            sumatotalprod += i.getCantidad() * i.getCosto();
        }
        return sumatotalprod;
    }

}
